// pages/day_detail/day_detail.js
const app = getApp()

Page({
  data: {
    date: '',
    formattedDate: '',
    cycleInfo: '',
    record: null,
    hasRecord: false,
    flowLevelText: ['无', '少量', '中量', '大量', '极多'],
    isLoading: true
  },

  onLoad: function(options) {
    console.log('详情页面 onLoad:', options)

    if (!options.date) {
      wx.showToast({
        title: '参数错误',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
      return
    }

    const date = options.date
    console.log('解析的日期:', date)

    this.setData({
      date: date,
      formattedDate: this.formatDisplayDate(new Date(date))
    })

    this.fetchDayDetail(date)
  },

  onReady: function() {
    // 设置导航栏右上角按钮
    this.updateNavigationBar()
  },

  updateNavigationBar: function() {
    wx.setNavigationBarTitle({
      title: '记录详情'
    })
  },
  
  // 格式化显示日期为YYYY年MM月DD日 星期X
  formatDisplayDate: function(date) {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const weekDays = ['日', '一', '二', '三', '四', '五', '六']
    const weekDay = weekDays[date.getDay()]
    return `${year}年${month}月${day}日 星期${weekDay}`
  },
  
  // 获取日期详情数据
  fetchDayDetail: function(date) {
    console.log('开始获取日期详情:', date)

    wx.showLoading({
      title: '加载中',
    })

    // 获取该日期的记录
    wx.cloud.callFunction({
      name: 'getDailyRecord',
      data: {
        date: date
      }
    }).then(res => {
      console.log('云函数调用成功:', res)
      wx.hideLoading()
      
      if (res.result.status === 'success') {
        const record = res.result.data

        if (record) {
          console.log('设置记录数据:', record)
          console.log('备注内容:', record.notes)
          this.setData({
            record: record,
            hasRecord: true,
            isLoading: false
          })
        } else {
          this.setData({
            record: null,
            hasRecord: false,
            isLoading: false
          })
        }

        // 获取周期信息
        this.fetchCycleInfo(date)
      } else {
        console.error('获取记录失败:', res)
        this.setData({
          record: null,
          hasRecord: false,
          isLoading: false
        })
      }
    }).catch(err => {
      wx.hideLoading()
      console.error('调用云函数失败:', err)
      this.setData({
        isLoading: false
      })
    })
  },
  
  // 获取周期信息
  fetchCycleInfo: function(date) {
    wx.cloud.callFunction({
      name: 'getCycleInfo',
      data: {
        date: date
      }
    }).then(res => {
      if (res.result.status === 'success') {
        const cycleInfo = res.result.data
        
        let infoText = ''
        
        if (cycleInfo.inPeriod) {
          infoText = `经期第${cycleInfo.periodDay}天`
        } else if (cycleInfo.isFertile) {
          infoText = '排卵期'
        } else if (cycleInfo.isOvulation) {
          infoText = '排卵日'
        } else if (cycleInfo.cycleDay > 0) {
          infoText = `周期第${cycleInfo.cycleDay}天`
        }
        
        this.setData({
          cycleInfo: infoText,
          isLoading: false
        })
      } else {
        // 如果获取周期信息失败，使用静态数据
        this.setStaticCycleInfo(date)
      }
    }).catch(err => {
      console.error('获取周期信息失败:', err)
      // 如果获取周期信息失败，使用静态数据
      this.setStaticCycleInfo(date)
    })
  },
  
  // 设置静态周期信息（作为备份方案）
  setStaticCycleInfo: function(dateStr) {
    const date = new Date(dateStr)
    const day = date.getDate()
    
    let infoText = ''
    
    // 模拟经期为每月8-12日
    if (day >= 8 && day <= 12) {
      infoText = `经期第${day - 7}天`
    } 
    // 模拟排卵日为每月22日
    else if (day === 22) {
      infoText = '排卵日'
    }
    // 模拟排卵期为每月19-25日（排卵日前后3天）
    else if (day >= 19 && day <= 25) {
      infoText = '排卵期'
    }
    // 其他日期显示周期第几天（从月初算起）
    else {
      infoText = `周期第${day}天`
    }
    
    this.setData({
      cycleInfo: infoText,
      isLoading: false
    })
  },
  

  
  // 编辑按钮
  onEdit: function() {
    const recordId = this.data.record ? this.data.record._id : ''
    
    if (recordId) {
      wx.navigateTo({
        url: `/pages/record/record?recordId=${recordId}`
      })
    } else {
      wx.navigateTo({
        url: `/pages/record/record?date=${this.data.date}`
      })
    }
  }
}) 